//package algorithm.datatype;
//
///**
// * Created by kevin on 15-1-4.
// */
//public class BinarySearchTree {
//    private Item root = null;
//    private class Item{
//        private int value;
//        private Item left,right,parent;
//        private Item(int x,Item p){
//        }
//    }
////    public int min(){}
////    public int max(){}
////    public Item find(int x){}
//    public Item insert(int x){
//        if(root == null){
//            root = new Item(x,null);
//            return root;
//        }
//        Item p = root,q = null;
//        while(p!=null){
//            q = p;
//            if(x == p.value){
//                return p;
//            }else if(x < p.value){
//                p = p.left;
//            }else{
//                p = p.right;
//            }
//        }
//        p = new Item(x,q);
//        if(x < q.value){
//            q.left = p;
//        }else{
//            q.right = p;
//        }
//        return p;
//    }
//    public void deleteWithoutLeft(Item p){
//        Item q = p.parent;
//        if(q == null){
//            root = p.right;
//            if(root != null){
//                root.parent = null;
//            }
//        }else if(q.left == p){
//            q.left = p.right;
//            if(q.left != null){
//                q.left.parent = q;
//            }
//        }else{
//            q.right = p.right;
//            if(q.right != null){
//                q.right.parent = q;
//            }
//        }
//    }
//    public void delete(int x){
//        Item p = find(x);
//        if(p == null){
//            return;
//        }else if(p.right == null){
////            deleteWithoutRight(p);
//        }else if(p.left == null){
//            deleteWithoutLeft(p);
//        }else{
//            Item q = p.right;
//            while (q.left != null)
//                q = q.left;
//            p.value = q.value;
//            deleteWithoutLeft(q);
//        }
//    }
//}
